package br.unifor.bd.deadlock;

import br.unifor.bd.protocol.Escalonador;
import br.unifor.bd.protocol.Transacao;

public class WaitDie extends PrevencaoDeDeadlock {

	private final Escalonador escalonador;
	
	public WaitDie(Escalonador escalonador) {
		this.escalonador = escalonador;
	}
	
	@Override
	public boolean detectar(Transacao transacao1, Transacao transacao2) {
		if (!transacao1.ehAntesDaTransacao(transacao2)) {
			escalonador.abortarTransacao(transacao1);
			return true;
		}
		return false;
	}

	@Override
	public String retrievePreventType() {
		return "WFD";
	}

}
